using System;
using Csla;
using ENT.GP.Datos.MysqlHelper;
using System.Data;
using ENT.GP.Core.Core;
using MySql.Data.MySqlClient;

namespace ENT.GP.Core.Deportista
{
    [Serializable]
    public class Deportista : BusinessBase<Deportista>
    {
        #region Business Methods

        #region "Datos generales de Deportista"

        private static PropertyInfo<int> IDDeportistaProperty = RegisterProperty<int>(o => o.IDDeportista, "Name");
        public int IDDeportista
        {
            get { return GetProperty(IDDeportistaProperty); }
            set { SetProperty(IDDeportistaProperty, value); }
        }

        private static PropertyInfo<string> NombreProperty = RegisterProperty<string>(o => o.Nombre, "Name");
        public string Nombre
        {
            get { return GetProperty(NombreProperty); }
            set { SetProperty(NombreProperty, value); }
        }

        private static PropertyInfo<DateTime?> FechaNacimientoProperty = RegisterProperty<DateTime?>(o => o.FechaNacimiento, "Name");
        public DateTime? FechaNacimiento
        {
            get { return GetProperty(FechaNacimientoProperty); }
            set { SetProperty(FechaNacimientoProperty, value); }
        }

        private static PropertyInfo<DateTime?> FechaInicioProperty = RegisterProperty<DateTime?>(o => o.FechaInicio, "Name");
        public DateTime? FechaInicio
        {
            get { return GetProperty(FechaInicioProperty); }
            set { SetProperty(FechaInicioProperty, value); }
        }

        private static PropertyInfo<int> DuracionProyProperty = RegisterProperty<int>(o => o.DuracionProy, "Name");
        public int DuracionProy
        {
            get { return GetProperty(DuracionProyProperty); }
            set { SetProperty(DuracionProyProperty, value); }
        }

        private static PropertyInfo<int> TipoProperty = RegisterProperty<int>(o => o.Tipo, "Name");
        public int Tipo
        {
            get { return GetProperty(TipoProperty); }
            set { SetProperty(TipoProperty, value); }
        }

        private static PropertyInfo<int> PoblacionAfectadaProperty = RegisterProperty<int>(o => o.PoblacionAfectada, "Name");
        public int PoblacionAfectada
        {
            get { return GetProperty(PoblacionAfectadaProperty); }
            set { SetProperty(PoblacionAfectadaProperty, value); }
        }

        private static PropertyInfo<double> PorcentajeAvanceProperty = RegisterProperty<double>(o => o.PorcentajeAvance, "Name");
        public double PorcentajeAvance
        {
            get { return GetProperty(PorcentajeAvanceProperty); }
            set { SetProperty(PorcentajeAvanceProperty, value); }
        }

        //Observaciones
        private static PropertyInfo<string> ApellidosProperty = RegisterProperty<string>(o => o.Apellidos, "Name");
        public string Apellidos
        {
            get { return GetProperty(ApellidosProperty); }
            set { SetProperty(ApellidosProperty, value); }
        }
        //Nuevo Id Empresa
        private static PropertyInfo<int> IDEmpresaProperty = RegisterProperty<int>(o => o.IDEmpresa, "Name");
        public int IDEmpresa
        {
            get { return GetProperty(IDEmpresaProperty); }
            set { SetProperty(IDEmpresaProperty, value); }
        }

        #endregion

        #region "Datos de Localizacion de Deportista"

        private static PropertyInfo<double> LatitudProperty = RegisterProperty<double>(o => o.Latitud, "Name");
        public double Latitud
        {
            get { return GetProperty(LatitudProperty); }
            set { SetProperty(LatitudProperty, value); }
        }

        private static PropertyInfo<double> LongitudProperty = RegisterProperty<double>(o => o.Longitud, "Name");
        public double Longitud
        {
            get { return GetProperty(LongitudProperty); }
            set { SetProperty(LongitudProperty, value); }
        }

        private static PropertyInfo<int> PaisProperty = RegisterProperty<int>(o => o.Pais, "Name");
        public int Pais
        {
            get { return GetProperty(PaisProperty); }
            set { SetProperty(PaisProperty, value); }
        }

        private static PropertyInfo<int> RegionProperty = RegisterProperty<int>(o => o.Region, "Name");
        public int Region
        {
            get { return GetProperty(RegionProperty); }
            set { SetProperty(RegionProperty, value); }
        }

        private static PropertyInfo<int> ProvinciaProperty = RegisterProperty<int>(o => o.Provincia, "Name");
        public int Provincia
        {
            get { return GetProperty(ProvinciaProperty); }
            set { SetProperty(ProvinciaProperty, value); }
        }

        private static PropertyInfo<int> CantonProperty = RegisterProperty<int>(o => o.Canton, "Name");
        public int Canton
        {
            get { return GetProperty(CantonProperty); }
            set { SetProperty(CantonProperty, value); }
        }

        private static PropertyInfo<string> ParroquiaProperty = RegisterProperty<string>(o => o.Parroquia, "Name");
        public string Parroquia
        {
            get { return GetProperty(ParroquiaProperty); }
            set { SetProperty(ParroquiaProperty, value); }
        }

        #endregion

        #region "Datos de Sector Estrategico del Deportista"

        

        private static PropertyInfo<int> EjeProperty = RegisterProperty<int>(o => o.Eje, "Name");
        public int Eje
        {
            get { return GetProperty(EjeProperty); }
            set { SetProperty(EjeProperty, value); }
        }

        private static PropertyInfo<int> ProgramaProperty = RegisterProperty<int>(o => o.Programa, "Name");
        public int Programa
        {
            get { return GetProperty(ProgramaProperty); }
            set { SetProperty(ProgramaProperty, value); }
        }
        #endregion

        #region "Datos financieros del Deportista"
        private static PropertyInfo<double> CostoTotalProperty = RegisterProperty<double>(o => o.CostoTotal, "Name");
        public double CostoTotal
        {
            get { return GetProperty(CostoTotalProperty); }
            set { SetProperty(CostoTotalProperty, value); }
        }

        private static PropertyInfo<double> AportePlanProperty = RegisterProperty<double>(o => o.AportePlan, "Name");
        public double AportePlan
        {
            get { return GetProperty(AportePlanProperty); }
            set { SetProperty(AportePlanProperty, value); }
        }

        private static PropertyInfo<double> AportePlanConDescuentoProperty = RegisterProperty<double>(o => o.AportePlanConDescuento, "Name");
        public double AportePlanConDescuento
        {
            get { return GetProperty(AportePlanConDescuentoProperty); }
            set { SetProperty(AportePlanConDescuentoProperty, value); }
        }

        private static PropertyInfo<double> AporteContraparteProperty = RegisterProperty<double>(o => o.AporteContraparte, "Name");
        public double AporteContraparte
        {
            get { return GetProperty(AporteContraparteProperty); }
            set { SetProperty(AporteContraparteProperty, value); }
        }

        private static PropertyInfo<double> AporteContraparte2Property = RegisterProperty<double>(o => o.AporteContraparte2, "Name");
        public double AporteContraparte2
        {
            get { return GetProperty(AporteContraparte2Property); }
            set { SetProperty(AporteContraparte2Property, value); }
        }

        private static PropertyInfo<double> PorcentajeDifusionProperty = RegisterProperty<double>(o => o.PorcentajeDifusion, "Name");
        public double PorcentajeDifusion
        {
            get { return GetProperty(PorcentajeDifusionProperty); }
            set { SetProperty(PorcentajeDifusionProperty, value); }
        }

        private static PropertyInfo<double> PorcentajeSupervisionProperty = RegisterProperty<double>(o => o.PorcentajeSupervision, "Name");
        public double PorcentajeSupervision
        {
            get { return GetProperty(PorcentajeSupervisionProperty); }
            set { SetProperty(PorcentajeSupervisionProperty, value); }
        }
        
        private static PropertyInfo<double> SaldoProperty = RegisterProperty<double>(o => o.Saldo, "Name");
        public double Saldo
        {
            get { return GetProperty(SaldoProperty); }
            set { SetProperty(SaldoProperty, value); }
        }

        private static PropertyInfo<double> UltimoPagoProperty = RegisterProperty<double>(o => o.UltimoPago, "Name");
        public double UltimoPago
        {
            get { return GetProperty(UltimoPagoProperty); }
            set { SetProperty(UltimoPagoProperty, value); }
        }
        #endregion

        #region "Datos del Marco Legal del Deportista"
        //Cedula
        private static PropertyInfo<string> CedulaLegalProperty = RegisterProperty<string>(o => o.Cedula, "Name");
        public string Cedula
        {
            get { return GetProperty(CedulaLegalProperty); }
            set { SetProperty(CedulaLegalProperty, value); }
        }
        private static PropertyInfo<string> NumeroConvenioProperty = RegisterProperty<string>(o => o.NumeroConvenio, "Name");
        public string NumeroConvenio
        {
            get { return GetProperty(NumeroConvenioProperty); }
            set { SetProperty(NumeroConvenioProperty, value); }
        }

        private static PropertyInfo<DateTime> FechaFirmaConvenioProperty = RegisterProperty<DateTime>(o => o.FechaFirmaConvenio, "Name");
        public DateTime FechaFirmaConvenio
        {
            get { return GetProperty(FechaFirmaConvenioProperty); }
            set { SetProperty(FechaFirmaConvenioProperty, value); }
        }
        
        private static PropertyInfo<string> ObservacionMLProperty = RegisterProperty<string>(o => o.ObservacionML, "Name");
        public string ObservacionML
        {
            get { return GetProperty(ObservacionMLProperty); }
            set { SetProperty(ObservacionMLProperty, value); }
        }

        private static PropertyInfo<string> DescripcionAdicionalProperty = RegisterProperty<string>(o => o.DescripcionAdicional, "Name");
        public string DescripcionAdicional
        {
            get { return GetProperty(DescripcionAdicionalProperty); }
            set { SetProperty(DescripcionAdicionalProperty, value); }
        }

        private static PropertyInfo<int> EstadoProperty = RegisterProperty<int>(o => o.Estado, "Name");
        public int Estado
        {
            get { return GetProperty(EstadoProperty); }
            set { SetProperty(EstadoProperty, value); }
        }
        
        
        #endregion

        #region "Datos de Alcance y Objetivos de Deportista"
        //Alcanze y objetivos

        private static PropertyInfo<string> ObjetivoGeneralProperty = RegisterProperty<string>(o => o.ObjetivoGeneral, "Name");
        public string ObjetivoGeneral
        {
            get { return GetProperty(ObjetivoGeneralProperty); }
            set { SetProperty(ObjetivoGeneralProperty, value); }
        }

        private static PropertyInfo<string> ObjetivoEspecificoProperty = RegisterProperty<string>(o => o.ObjetivoEspecifico, "Name");
        public string ObjetivoEspecifico
        {
            get { return GetProperty(ObjetivoEspecificoProperty); }
            set { SetProperty(ObjetivoEspecificoProperty, value); }
        }

        private static PropertyInfo<double> NumeroHabitantesProperty = RegisterProperty<double>(o => o.NumeroHabitantes, "Name");
        public double NumeroHabitantes
        {
            get { return GetProperty(NumeroHabitantesProperty); }
            set { SetProperty(NumeroHabitantesProperty, value); }
        }

        #endregion

        

        #endregion 

        #region Validation Rules

        protected override void AddBusinessRules()
        {
            // TODO: add validation rules
            //ValidationRules.AddRule(RuleMethod, "");
        }

        #endregion

        #region Authorization Rules

        protected override void AddAuthorizationRules()
        {
            // TODO: add authorization rules
            //AuthorizationRules.AllowWrite("Name", "Role");
        }

        private static void AddObjectAuthorizationRules()
        {
            // TODO: add authorization rules
            //AuthorizationRules.AllowEdit(typeof(Deportista), "Role");
        }

        #endregion

        #region Factory Methods

        public static Deportista NewDeportista()
        {
            return DataPortal.Create<Deportista>();
        }

        public static Deportista GetDeportista(int id)
        {
            return DataPortal.Fetch<Deportista>(
              new SingleCriteria<Deportista, int>(id));
        }

        public static void DeleteEditableRoot(int id)
        {
            DataPortal.Delete(new SingleCriteria<Deportista, int>(id));
        }

        private Deportista()
        { /* Require use of factory methods */ }

        #endregion

        #region Data Access

        [RunLocal]
        protected override void DataPortal_Create()
        {
            // TODO: load default values
            // omit this override if you have no defaults to set
            base.DataPortal_Create();
        }

        private void DataPortal_Fetch(SingleCriteria<Deportista, int> criteria)
        {
            DataSet dsDatos = new DataSet();
            HelperMySql objhm = HelperMySql.ObtenerConexion("");
            MySql.Data.MySqlClient.MySqlParameter[] parametros = new MySql.Data.MySqlClient.MySqlParameter[1];
            parametros[0] = new MySql.Data.MySqlClient.MySqlParameter("Id", criteria.Value);
            dsDatos = objhm.EjecutarStoreProcedure(parametros, "ObtenerProyecto");
            if (dsDatos.Tables[0].Rows.Count>0)
            {
                DateTime fI,fF,fFC;
                LoadProperty(IDDeportistaProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][0].ToString()));
                LoadProperty(ProgramaProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][1].ToString()));
                LoadProperty(NombreProperty,dsDatos.Tables[0].Rows[0][2].ToString());
                DateTime.TryParse(dsDatos.Tables[0].Rows[0][3].ToString(),out fI);
                DateTime.TryParse(dsDatos.Tables[0].Rows[0][4].ToString(),out fF);
                LoadProperty(FechaInicioProperty,fI);
                LoadProperty(FechaNacimientoProperty, fF);
                LoadProperty(CostoTotalProperty, Convert.ToDouble(dsDatos.Tables[0].Rows[0][5].ToString()));
                LoadProperty(ApellidosProperty, dsDatos.Tables[0].Rows[0][6].ToString());
                LoadProperty(TipoProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][7].ToString()));
                LoadProperty(DuracionProyProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][8].ToString()));
                LoadProperty(RegionProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][9].ToString()));
                LoadProperty(ProvinciaProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][10].ToString()));
                LoadProperty(CantonProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][11].ToString()));
                LoadProperty(ParroquiaProperty, dsDatos.Tables[0].Rows[0][12].ToString());
                LoadProperty(CedulaLegalProperty, dsDatos.Tables[0].Rows[0][13].ToString());
                LoadProperty(AportePlanProperty, dsDatos.Tables[0].Rows[0][14].ToString());
                LoadProperty(AporteContraparteProperty, dsDatos.Tables[0].Rows[0][15].ToString());

                LoadProperty(NumeroConvenioProperty, dsDatos.Tables[0].Rows[0][16].ToString());
                DateTime.TryParse(dsDatos.Tables[0].Rows[0][17].ToString(), out fFC);
                LoadProperty(FechaFirmaConvenioProperty, fFC);
                
                LoadProperty(AporteContraparte2Property, dsDatos.Tables[0].Rows[0][28].ToString());
                LoadProperty(EstadoProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][18].ToString()));
                LoadProperty(DescripcionAdicionalProperty, dsDatos.Tables[0].Rows[0][19].ToString());
                LoadProperty(ObjetivoGeneralProperty, dsDatos.Tables[0].Rows[0][20].ToString());
                LoadProperty(ObjetivoEspecificoProperty, dsDatos.Tables[0].Rows[0][21].ToString());
                LoadProperty(NumeroHabitantesProperty, Convert.ToDouble(dsDatos.Tables[0].Rows[0][22].ToString()));
                LoadProperty(LatitudProperty,Convert.ToDouble( dsDatos.Tables[0].Rows[0][23].ToString()));
                LoadProperty(LongitudProperty, Convert.ToDouble( dsDatos.Tables[0].Rows[0][24].ToString()));
                LoadProperty(EjeProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][25].ToString()));
                
                LoadProperty(PoblacionAfectadaProperty, Convert.ToInt32(dsDatos.Tables[0].Rows[0][29].ToString()));
                LoadProperty(PorcentajeAvanceProperty, Convert.ToDouble(dsDatos.Tables[0].Rows[0][30].ToString()));
                LoadProperty(SaldoProperty, dsDatos.Tables[0].Rows[0][31].ToString());
                LoadProperty(UltimoPagoProperty, dsDatos.Tables[0].Rows[0][32].ToString());
                LoadProperty(PorcentajeDifusionProperty, Convert.ToDouble(dsDatos.Tables[0].Rows[0][33].ToString()));
                LoadProperty(PorcentajeSupervisionProperty, Convert.ToDouble(dsDatos.Tables[0].Rows[0][34].ToString()));
                LoadProperty(AportePlanConDescuentoProperty, Convert.ToDouble(dsDatos.Tables[0].Rows[0][35].ToString()));
                
            }
        }

        [Transactional(TransactionalTypes.TransactionScope)]
        protected override void DataPortal_Insert()
        {
            HelperMySql objhm = HelperMySql.ObtenerConexion("");
            MySql.Data.MySqlClient.MySqlParameter[] parametros = new MySql.Data.MySqlClient.MySqlParameter[33];            
            parametros[0] = new MySql.Data.MySqlClient.MySqlParameter("IDPROGRAMA1", Programa);
            parametros[1] = new MySql.Data.MySqlClient.MySqlParameter("NOMBREDeportista1", Nombre);
            parametros[2] = new MySql.Data.MySqlClient.MySqlParameter("FINICIODeportista1", FechaInicio);
            parametros[3] = new MySql.Data.MySqlClient.MySqlParameter("FFINDeportista1", FechaNacimiento);
            parametros[4] = new MySql.Data.MySqlClient.MySqlParameter("COSTOTOTAL1", CostoTotal);
            parametros[5] = new MySql.Data.MySqlClient.MySqlParameter("OBSERVACION1", Apellidos);
            parametros[6] = new MySql.Data.MySqlClient.MySqlParameter("TIPODeportista1", Tipo);
            parametros[7] = new MySql.Data.MySqlClient.MySqlParameter("DURACIONDeportista1", DuracionProy);
            parametros[8] = new MySql.Data.MySqlClient.MySqlParameter("REGIONID1", Region);
            parametros[9] = new MySql.Data.MySqlClient.MySqlParameter("PROVINCIAID1", Provincia);
            parametros[10] = new MySql.Data.MySqlClient.MySqlParameter("CANTONID1", Canton);
            parametros[11] = new MySql.Data.MySqlClient.MySqlParameter("PARROQUIA1", Parroquia);
            parametros[12] = new MySql.Data.MySqlClient.MySqlParameter("DL", Cedula);
            parametros[13] = new MySql.Data.MySqlClient.MySqlParameter("APORTEPLAN1", AportePlan);
            parametros[14] = new MySql.Data.MySqlClient.MySqlParameter("APORTECONTRAPARTE1", AporteContraparte);
            parametros[15] = new MySql.Data.MySqlClient.MySqlParameter("NUMEROCONVENIO1", NumeroConvenio);
            parametros[16] = new MySql.Data.MySqlClient.MySqlParameter("FECHAFIRMACONV1", FechaFirmaConvenio);
            parametros[17] = new MySql.Data.MySqlClient.MySqlParameter("ESTADOID1", Estado);
            parametros[18] = new MySql.Data.MySqlClient.MySqlParameter("DESCRIPCIONADICIONAL1", DescripcionAdicional);
            parametros[19] = new MySql.Data.MySqlClient.MySqlParameter("OBJETIVOGENERAL1", ObjetivoGeneral);
            parametros[20] = new MySql.Data.MySqlClient.MySqlParameter("OBJETIVOESPECIFICO1", ObjetivoEspecifico);
            parametros[21] = new MySql.Data.MySqlClient.MySqlParameter("NH", NumeroHabitantes);
            parametros[22] = new MySql.Data.MySqlClient.MySqlParameter("LATITUD1", Latitud);
            parametros[23] = new MySql.Data.MySqlClient.MySqlParameter("LONGITUD1", Longitud);
            parametros[24] = new MySql.Data.MySqlClient.MySqlParameter("EJE1", Eje);
            parametros[27] = new MySql.Data.MySqlClient.MySqlParameter("ACONTRAPARTE2", AporteContraparte2);
            parametros[28] = new MySql.Data.MySqlClient.MySqlParameter("PA", PoblacionAfectada);
            parametros[29] = new MySql.Data.MySqlClient.MySqlParameter("PORCENTAJEA1", PorcentajeAvance);
            parametros[30] = new MySql.Data.MySqlClient.MySqlParameter("PORSUP", PorcentajeSupervision);
            parametros[31] = new MySql.Data.MySqlClient.MySqlParameter("PORDIF", PorcentajeDifusion);
            parametros[32] = new MySql.Data.MySqlClient.MySqlParameter("IDEMPRESA1", IDEmpresa);

            int idProy=0;
            try
            {
                idProy = Convert.ToInt32(objhm.EjecutarStoreProcedure("Insertar_Proyecto", parametros, 1));
                IDDeportista = idProy;
                FieldManager.UpdateChildren(idProy);
            }
            catch (Exception)
            {

                throw;
            }
            
        }

        [Transactional(TransactionalTypes.TransactionScope)]
        protected override void DataPortal_Update()
        {
            HelperMySql objhm = HelperMySql.ObtenerConexion("");
            MySql.Data.MySqlClient.MySqlParameter[] parametros = new MySql.Data.MySqlClient.MySqlParameter[35];
            parametros[0] = new MySql.Data.MySqlClient.MySqlParameter("IDPROGRAMA1", Programa);
            parametros[1] = new MySql.Data.MySqlClient.MySqlParameter("NOMBREDeportista1", Nombre);
            parametros[2] = new MySql.Data.MySqlClient.MySqlParameter("FINICIODeportista1", FechaInicio);
            parametros[3] = new MySql.Data.MySqlClient.MySqlParameter("FFINDeportista1", FechaNacimiento);
            parametros[4] = new MySql.Data.MySqlClient.MySqlParameter("COSTOTOTAL1", CostoTotal);
            parametros[5] = new MySql.Data.MySqlClient.MySqlParameter("OBSERVACION1", Apellidos);
            parametros[6] = new MySql.Data.MySqlClient.MySqlParameter("TIPODeportista1", Tipo);
            parametros[7] = new MySql.Data.MySqlClient.MySqlParameter("DURACIONDeportista1", DuracionProy);
            parametros[8] = new MySql.Data.MySqlClient.MySqlParameter("REGIONID1", Region);
            parametros[9] = new MySql.Data.MySqlClient.MySqlParameter("PROVINCIAID1", Provincia);
            parametros[10] = new MySql.Data.MySqlClient.MySqlParameter("CANTONID1", Canton);
            parametros[11] = new MySql.Data.MySqlClient.MySqlParameter("PARROQUIA1", Parroquia);
            parametros[12] = new MySql.Data.MySqlClient.MySqlParameter("DL", Cedula);
            parametros[13] = new MySql.Data.MySqlClient.MySqlParameter("APORTEPLAN1", AportePlan);
            parametros[14] = new MySql.Data.MySqlClient.MySqlParameter("APORTECONTRAPARTE1", AporteContraparte);
            parametros[15] = new MySql.Data.MySqlClient.MySqlParameter("NUMEROCONVENIO1", NumeroConvenio);
            parametros[16] = new MySql.Data.MySqlClient.MySqlParameter("FECHAFIRMACONV1", FechaFirmaConvenio);
            parametros[17] = new MySql.Data.MySqlClient.MySqlParameter("ESTADOID1", Estado);
            parametros[18] = new MySql.Data.MySqlClient.MySqlParameter("DESCRIPCIONADICIONAL1", DescripcionAdicional);
            parametros[19] = new MySql.Data.MySqlClient.MySqlParameter("OBJETIVOGENERAL1", ObjetivoGeneral);
            parametros[20] = new MySql.Data.MySqlClient.MySqlParameter("OBJETIVOESPECIFICO1", ObjetivoEspecifico);
            parametros[21] = new MySql.Data.MySqlClient.MySqlParameter("NH", NumeroHabitantes);
            parametros[22] = new MySql.Data.MySqlClient.MySqlParameter("LATITUD1", Latitud);
            parametros[23] = new MySql.Data.MySqlClient.MySqlParameter("LONGITUD1", Longitud);
            parametros[24] = new MySql.Data.MySqlClient.MySqlParameter("EJE1", Eje);
            parametros[27] = new MySql.Data.MySqlClient.MySqlParameter("ACONTRAPARTE2", AporteContraparte2);
            parametros[28] = new MySql.Data.MySqlClient.MySqlParameter("PA", PoblacionAfectada);
            parametros[29] = new MySql.Data.MySqlClient.MySqlParameter("PORCENTAJEA1", PorcentajeAvance);
            parametros[30] = new MySql.Data.MySqlClient.MySqlParameter("S", Saldo);
            parametros[31] = new MySql.Data.MySqlClient.MySqlParameter("UD", UltimoPago);
            parametros[32] = new MySql.Data.MySqlClient.MySqlParameter("PORSUP", PorcentajeSupervision);
            parametros[33] = new MySql.Data.MySqlClient.MySqlParameter("PORDIF", PorcentajeDifusion);
            parametros[34] = new MySql.Data.MySqlClient.MySqlParameter("ID", IDDeportista);
            try
            {
                objhm.EjecutarStoreProcedure("Actualizar_Proyecto", parametros);
                FieldManager.UpdateChildren(IDDeportista);
            }
            catch (Exception)
            {

                throw;
            }
        }

        [Transactional(TransactionalTypes.TransactionScope)]
        protected override void DataPortal_DeleteSelf()
        {
            HelperMySql objhm = HelperMySql.ObtenerConexion("");
            MySqlParameter[] parametros = new MySqlParameter[1];
            try
            {
                parametros[0] = new MySql.Data.MySqlClient.MySqlParameter("ID", IDDeportista);

                objhm.EjecutarStoreProcedure("Eliminar_Proyecto", parametros);

            }
            catch (Exception)
            {

                throw;
            }
        }

        [Transactional(TransactionalTypes.TransactionScope)]
        private void DataPortal_Delete(SingleCriteria<Deportista, int> criteria)
        {
            
        }

        #endregion
    }
}
